package IC.Symbols;

public enum SymbolTableType {
	Global("Global", 0x0),
	Class("Class", 0x1),
	Method("Method", 0x2),
	Block("Statement Block", 0x3 | 0x4);
	
	private final String symbolTypeId;
	private final int params;
	
    private SymbolTableType(String id, int params)
    {
        symbolTypeId = id;
        this.params = params;
    }

    public String toString()
    {
        return symbolTypeId;
    }
    
    public int getLevel(){
    	// return in - according to the order above
    	return (params & 0x3);
    }
    
    public boolean PrintContainer(){
    	return (params & 0x4) !=0;
    }
        
	public int getParams(){
    	return params;
    }
}
